package com.tancire.member.service;

import java.util.List;
import java.util.Map;

import com.tancire.member.domain.Member;

/**
 * 会员管理Service接口
 *
 * @author tancire
 * @date 2024-05-20
 */
public interface IMemberService {
    /**
     * 查询会员管理
     *
     * @param memberId 会员管理主键
     * @return 会员管理
     */
    Member selectMemberByMemberId(Long memberId);

    /**
     * 查询会员管理列表
     *
     * @param member 会员管理
     * @return 会员管理集合
     */
    List<Member> selectMemberList(Member member);

    /**
     * 新增会员管理
     *
     * @param member 会员管理
     * @return 结果
     */
    int insertMember(Member member);

    /**
     * 修改会员管理
     *
     * @param member 会员管理
     * @return 结果
     */
    int updateMember(Member member);

    /**
     * 批量删除会员管理
     *
     * @param memberIds 需要删除的会员管理主键集合
     * @return 结果
     */
    int deleteMemberByMemberIds(Long[] memberIds);

    /**
     * 删除会员管理信息
     *
     * @param memberId 会员管理主键
     * @return 结果
     */
    int deleteMemberByMemberId(Long memberId);

    /**
     * 根据微信openid查询账号信息
     *
     * @param openid
     * @return
     */
    Member selectMemberByOpenId(String openid);

    /**
     * 根据账号查询会员信息
     *
     * @param username
     */
    Member selectMemberByAccount(String username);

    /**
     * 获取会员详情
     *
     * @return
     */
    Member selectMemberByMemberInfo();

    /**
     * 校验账号名称重复
     *
     * @return
     */
    boolean checkAccountUnique(String account);

    /**
     * 更新个人账号信息
     *
     * @param member
     */
    void updateMemberInfo(Member member);

    /**
     * 查询排名前20会员信息
     *
     * @return
     */
    List<Member> selectMemberTopLevelList();

    /**
     * 根据IDS批量查询会员信息
     *
     * @param ids
     * @return
     */
    List<Member> selectMemberByIds(List<Long> ids);

    /**
     * 获得会员ID对应会员名MAP
     *
     * @param ids
     * @return
     */
    Map<Long, String> selectMemberMapByIds(List<Long> ids);
}
